meson: Fix check for builtype arguments
authorNirbheek Chauhan <nirbheek@centricular.com>
Fri, 3 Apr 2020 12:02:51 +0000 (17:32 +0530)
committerNirbheek Chauhan <nirbheek@centricular.com>
Fri, 3 Apr 2020 13:11:55 +0000 (18:41 +0530)
`get_option('buildtype')` will return `'custom'` for most combinations
of `-Doptimization` and `-Ddebug`, but those two will always be set
correctly if only `-Dbuildtype` is set. So we should look at those
options directly.

For the two-way mapping between `buildtype` and `optimization`
+ `debug`, see this table:
https://mesonbuild.com/Builtin-options.html#build-type-options

meson.build

index 7eee560a6d0617d95c3c3b8e50f7640f1e828ca9..bf63c1330e4017904e10d2cc71ce27eb04269f64 100644 (file)
@@ -60,14 +60,17 @@ add_project_arguments('-DGTK_VERSION="@0@"'.format(meson.project_version()), lan
 
 add_project_arguments('-D_GNU_SOURCE', language: 'c')
 
+# Use debug/optimization flags to determine whether to enable debug or disable
+# cast checks
 gtk_debug_cflags = []
-buildtype = get_option('buildtype')
-if buildtype.startswith('debug')
+debug = get_option('debug')
+optimization = get_option('optimization')
+if debug
   gtk_debug_cflags += '-DG_ENABLE_DEBUG'
-  if buildtype == 'debug'
+  if optimization in ['0', 'g']
     gtk_debug_cflags += '-DG_ENABLE_CONSISTENCY_CHECKS'
   endif
-elif buildtype == 'release'
+elif optimization in ['2', '3', 's']
   gtk_debug_cflags += '-DG_DISABLE_CAST_CHECKS'
 endif